import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: WHY
 * Date: 2022-04-28
 * Time: 12:12
 */

public class TestDemo {
//几个数字包含9   19
public static void main17(String[] args) {
    int i=0;
    int count =0;
    for(i=1;i<=100;i++){
        if(i%10==9){
            count++;
        }else  if(i/10==9){//答案就是19，主要区别就在于99，改为这样的语句就变成了选择语句，执行1
            count++;
        }
    }
    System.out.println(count);
}

    //统计1-100出现9的次数    20
    public static void main16(String[] args) {
        int i=0;
        int count =0;
        for(i=1;i<=100;i++){
            if(i%10==9){
                count++;
            }if(i/10==9){
                count++;
            }
        }
        System.out.println(count);
    }

    //打印x型图案



    public static void main15(String[] args) {
        Scanner scanner=new Scanner(System.in);
        while(scanner.hasNextInt()) {
            int n = scanner.nextInt();
            for (int i = 0; i < n; i++) {
                for (int j = 0; j < n; j++) {
                    if (i == j) {
                        System.out.print("*");
                    } else if (i + j + 1 == n) {
                        System.out.print("*");
                    } else {
                        System.out.print(" ");
                    }


                }
                System.out.println();
            }
        }
    }
    public static void main14(String[] args) {
        Scanner scanner=new Scanner(System.in);
        int count =3;
        while(count!=0){
            System.out.println("请输入密码");
            String password= scanner.nextLine();
            if(password.equals("123456")){
                System.out.println("登录成功");
                break;
            }else{
                count--;
                System.out.println("你还有"+count+"次机会");
            }
        }
    }

  //获取一个二进制数奇数位和偶数位，分别输出二进制序列
    //1.怎么确定某个位    假设要拿到最左边的数字，就向右移动31位，这个数来到了最右边，再让他与1按位与，就能确定它是几了
    //2.怎么拿到指定的二进制位  &
    //7的二进制后8位：   0000   0111
    //奇数位    0011
    //偶数位    0010
  public static void main13(String[] args) {
      int n=7;
      //偶数位
      for (int i = 31; i >=1 ; i-=2) {
          System.out.print(((n>>i)&1));
      }
      System.out.println();
      //奇数位
      for (int i = 30; i >=0 ; i-=2) {
          System.out.print(((n>>i)&1));
      }


  }

    //写一个函数，返回参数中二进制中1的个数
    //n&(n-1),每&上一个1，就少一个1，知道n变为0；
    public static void main12(String[] args) {
        int n=7;
        int count =0;
        while(n!=0){
            n=n&(n-1);
            count++;
        }
        System.out.println(count);

    }

    /**
     * 采用无符号右移可以解决负数的问题
     * @param args
     */
    public static void main11(String[] args) {
        int n=-1;
        int count =0;
        while(n!=0){
            if((n&1)!=0){
                count++;
            }
            n=n>>>1;
        }
        System.out.println(count);
    }
    public static void main10(String[] args) {
        int n=7;
        int count =0;
        while(n!=0){
            if((n&1)!=0){
                count++;
            }
            n=n>>1;
        }
        System.out.println(count);
    }


    public static void main9(String[] args) {
        int n=7;
        int count =0;
        for (int i = 0; i < 32; i++) {
                if(((n>>i)&1)!=0){
                    count++;
                }

        }
        System.out.println(count);
    }







    //六位自幂数代码实现//思路1.求出是几位数
    //2.分别求出每一位上得数是几
    public static void main8(String[] args) {
        int i=0;

        for (i=1;i<999999;i++){
            int tmp=i;
            int count =0 ;//位数
            while(tmp!=0){
                count++;
                tmp/=10;

            }
            tmp=i;
            int sum=0;
            while(tmp!=0){
                sum+=Math.pow(tmp%10,count);//sum存储的是tmp的每一位的count次方和
                tmp/=10;
            }
            if(sum==i){
                System.out.println(i+"是六位自幂数");
            }
        }
    }





    //辗转相除法求最大公约数
    public static void main7(String[] args) {

        Scanner scanner = new Scanner(System.in);
        int a = scanner.nextInt();
        int b = scanner.nextInt();
        int c = a%b;
        while (c != 0) {
            a = b;
            b = c;
            c = a%b;
        }
        System.out.println(b+" 是最大公约数！");
    }

    public static boolean isPrime2(int n) {
        //方法实现2

        int i = 1;
        for (i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                //System.out.println(n + "不是素数");
               break;

            }
        }
        if (i > Math.sqrt(n)) {
            //System.out.println(n + "是素数");
            return true;
        }
        return false;
    }

    public static void main6(String[] args) {
        int i=1;
        for(i=1;i<101;i++){
           boolean ret=isPrime2(i);
           if(ret){
               System.out.println(i+"是素数");
           }
        }
    }
    //一般方法实现1-100打印素数
    public static void main5(String[] args) {
        int i=2;
        for(int j=1;j<101;j++){
            for (i=2; i <= Math.sqrt(j); i++) {
                if (j % i == 0) {
                    System.out.println(j + "不是素数");
                    break;
                }
            }
            if (i > Math.sqrt(j)) {
                System.out.println(j + "是素数");
            }

        }
    }
    public static void isPrime1(int n) {
        //方法实现1

        int i = 1;
        for (i = 2; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                System.out.println(n + "不是素数");
                break;
            }
        }
        if (i > Math.sqrt(n)) {
            System.out.println(n + "是素数");
        }
    }

    public static void main4(String[] args) {
        for (int i = 1; i <101; i++) {
            isPrime1(i);

        }
    }

//判断一个数是不是素数
    public static void main3(String[] args) {
        int n=7;
        int i=1;
        for ( i = 2; i <=Math.sqrt(n); i++) {
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i>Math.sqrt(n)){
            System.out.println(n+"是素数");
        }
    }
    public static void main2(String[] args) {
        int n=7;
        int i=1;
        for ( i = 2; i <=n/2; i++) {
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(i>n/2){
            System.out.println(n+"是素数");
        }
    }

    //判断一个数是不是素数
    public static void main1(String[] args) {
    int n=7;
    int i=1;
        for ( i = 2; i <n; i++) {
            if(n%i==0){
                System.out.println(n+"不是素数");
                break;
            }
        }
        if(n==i){
            System.out.println(n+"是素数");
        }
    }

}
